请详细阅读操作文档,结合实际情况进行配置:

        若操作不当将可能导致网络卡顿甚至断网等异常情况。

        若网络中存在业务的情况下,请同步客户风险并征得客户同意后再操作。

        若您不清楚造成的影响或对操作不熟练,请不要操作,请联系专业的锐捷售后工程师进行评估后再决定是否操作。


应用场景:    

在OSPF域内对路由进行汇总,过滤控制的点通常是在ABR,ASBR上面做,因为这两个点是LSA3,LSA4,LSA5,LSA7这样的链路通告产生的点,常见的手段就是area range,summary-address,route-map这样的命令,但是如果是针对普通区域的,普通路由器来说对于他收发的LSA我们已经无法控制,也就无法控制这样的普通路由器的路由学习的结果,而在有些情况下我们还是希望能够改变这样的限制,控制这样的点的路由学习,通告的一个结果,以便满足管理员对特点网段路由的一个按需学习的目的,此时就可以用distribute-list工具来帮您解决这样的问题。

distribute-list通常用于OSPF路由协议中,他可以应用到任意的一台路由器(包括ABR,ASBR)上进行路由条目过滤,当然需要注意他是基于整个OSPF进程调用的,而不是接口。    

   

功能简介:    

distribute-list 分发列表,通过distribute-list 工具对路由更新进行控制,只能进行路由条目过滤,不能修改路由的属性

   

   

一、组网需求    

在SW2上把rip路由重分发进ospf,并且在重分发时进行路由过滤,只允许路由172.16.1.32/28、172.16.1.48/29、172.16.1.56/30重分发进ospf    

   

二、组网拓扑    

        

三、配置要点

1、基本ip地址配置

2、SW1、SW2启用rip协议,并将对应接口通告到rip进程

3、SW2、SW3启用ospf协议,并将对应接口通告到ospf进程

4、在SW2上把rip学习到的路由重分发进ospf

5、通过acl或前缀列表,把需要学习的路由匹配出来

6、SW2 rip路由重分发进ospf,使用distribute-list 过滤路由

   

三、配置步骤    

1、基本ip地址配置

Ruijie>en

Ruijie#config ter

Ruijie(config)#hostname SW1

SW1(config)#interface GigabitEthernet 0/1

SW1(config-if-GigabitEthernet 0/1)#no switchport    

      SW1(config-if-GigabitEthernet 0/1)#ip address 192.168.1.1 255.255.255.0

SW1(config-if-GigabitEthernet 0/1)#exit

SW1(config)#interface loopback 1

SW1(config-if-Loopback 1)#ip address 172.16.1.1 255.255.255.224

SW1(config-if-Loopback 1)#exit

SW1(config)#interface loopback 2

SW1(config-if-Loopback 2)#ip address 172.16.1.33 255.255.255.240

SW1(config-if-Loopback 2)#exit

SW1(config)#interface loopback 3

SW1(config-if-Loopback 3)#ip address 172.16.1.49 255.255.255.248

SW1(config-if-Loopback 3)#exit

SW1(config)#interface loopback 4

SW1(config-if-Loopback 4)#ip address 172.16.1.57 255.255.255.252

SW1(config-if-Loopback 4)#exit

   

Ruijie(config)#hostname SW2

SW2(config)#interface GigabitEthernet 0/2

SW2(config-if-GigabitEthernet 0/2)#no switchport

SW2(config-if-GigabitEthernet 0/2)#ip address 192.168.1.2 255.255.255.0

SW2(config-if-GigabitEthernet 0/2)#exit

SW2(config)#interface GigabitEthernet 0/1

SW2(config-if-GigabitEthernet 0/1)#no switchport

SW2(config-if-GigabitEthernet 0/1)#ip address 192.168.2.1 255.255.255.0

SW2(config-if-GigabitEthernet 0/1)#exit

   

Ruijie(config)#hostname SW3

SW3(config)#interface GigabitEthernet 0/2

SW3(config-if-GigabitEthernet 0/2)#no switchport

SW3(config-if-GigabitEthernet 0/2)#ip address 192.168.2.2 255.255.255.0

SW3(config-if-GigabitEthernet 0/2)#exit

   

2、SW1、SW2启用rip协议,并将对应接口通告到rip进程

SW1(config)#router rip

SW1(config-router)#version 2     ----->启用rip版本2

SW1(config-router)#no auto-summary     ----->关闭自动汇总

SW1(config-router)#network 172.16.0.0     ----->将172.16.0.0的主类网络通告到rip进程

SW1(config-router)#network 192.168.1.0      

SW1(config-router)#exit

   

SW2(config)#router rip

SW2(config-router)#version 2

SW2(config-router)#no auto-summary

SW2(config-router)#network 192.168.1.0

SW2(config-router)#exit

   

3、SW2、SW3启用ospf协议,并将对应接口通告到ospf进程

SW2(config)#router ospf 1    ----->启用ospf进程 1

SW2(config-router)#network 192.168.2.1 0.0.0.0 area 0    ----->将192.168.2.1对应的接口通告到ospf 进程1的区域 0

SW2(config-router)#exit

   

SW3(config)#router ospf 1

SW3(config-router)#network 192.168.2.2 0.0.0.0 area 0

SW3(config-router)#exit

   

4、在SW2上把rip学习到的路由重分发进ospf

SW2(config)#router ospf 1

SW2(config-router)#redistribute rip subnets    ----->将rip路由重分发进ospf,必须加subnet    

SW2(config-router)#exit

5、通过acl或前缀列表,把需要学习的路由匹配出来

注意:

1)匹配路由条目的工具有acl和前缀列表两种,只要选择其中一种就可以    

2)若需要匹配一个大网段下的不同掩码长度的路由前缀时,前缀列表会更方便一些,当然用acl也是可以的,只是要写多个条目

如下示例,匹配路由条目172.16.1.32/27、172.16.1.48/28和172.16.1.56/29,acl需要写3个ace条目,前缀列表只要1个条目

1)使用acl匹配路由条目

注意:

此处acl匹配的是路由条目,掩码用0.0.0.0精确匹配对应的路由条目

SW2(config)#ip access-list standard 1

SW2(config-std-nacl)#10 permit 172.16.1.32 0.0.0.0

SW2(config-std-nacl)#20 permit 172.16.1.48 0.0.0.0

SW2(config-std-nacl)#30 permit 172.16.1.56 0.0.0.0

SW2(config-std-nacl)#exit                     

2)使用前缀列表匹配路由条目

注意:

1)前缀列表只能用来匹配路由条目,不能用来做数据包过滤

2)前缀列表匹配的是一个网段下的子网,ge代表大于等于多少位掩码,le代表小于多少位掩码

3)前缀列表也是从上往下匹配,最后隐含一条deny any

SW2(config)#ip prefix-list ruijie seq 10 permit 172.16.1.0/24 ge 28 le 30  ----->定义前缀列表ruijie,匹配前缀为172.16.1.0/24,子网掩码大于等于28小于等于30的路由条目

6、SW2 rip路由重分发进ospf,使用distribute-list 过滤路由

注意

1)distribute-list过滤的路由条目是由acl和前缀列表匹配出来的,具体过滤什么路由条目是由acl和前缀列表决定的

2)distribute-list可以运用的地方为,路由协议重分发时距离矢量路由协议邻居之间的路由传递(距离矢量协议邻居之间传递的是路由,因此可以做路由过滤)及链路状态路由协议将路由提交路由表时(链路状态协议邻居之间传递的是lsa并非路由,不能过滤邻居之间传递的lsa)。

如下以distribute-list 调用acl及前缀列表做路由过滤,分别举例:

1)distribute-list 调用acl做路由过滤

SW2(config)#router ospf 1       

SW2(config-router)#distribute-list 1 out rip     ----->把rip路由重分发进ospf时做路由过滤(注意方向必须是out

SW2(config-router)#exit

2)distribute-list 调用前缀列表做路由过滤

SW2(config)#router ospf 1

SW2(config-router)#distribute-list prefix ruijie out rip    ----->把rip路由重分发进ospf时做路由过滤(注意方向必须是out    

SW2(config-router)#exit

补充:

1)距离矢量协议使用distribute-list 过滤邻居之间传递的路由条目,命令如下:

SW2(config)#router rip

SW2(config-router)#distribute-list 1 in GigabitEthernet 0/2   ----->1代表acl 列表 1,也可用前缀列表; in代表从邻居学习的路由,若为out则是传递给邻居的路由;还可以加上具体的接口

2)链路状态协议使用distribute-list 过滤提交给路由表的路由条目

SW2(config)#router ospf 1

SW2(config-router)#distribute-list 1 in   ----->代表acl 列表 1,也可用前缀列表; 方向必须为in    

   

四、功能验证

查看SW3的路由条目,若SW3学习到的路由条目为 172.16.1.32/28、172.16.1.48/29、172.16.1.56/30 则distribute-list做路由过滤配置正确

SW3#show ip route

Codes:  C - connected, S - static, R - RIP, B - BGP

        O - OSPF, IA - OSPF inter area

        N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

        E1 - OSPF external type 1, E2 - OSPF external type 2

        i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

        ia - IS-IS inter area, * - candidate default

   

Gateway of last resort is no set

O E2 172.16.1.32/28 [110/20] via 192.168.2.1, 00:02:45, GigabitEthernet 0/2

O E2 172.16.1.48/29 [110/20] via 192.168.2.1, 00:02:29, GigabitEthernet 0/2

O E2 172.16.1.56/30 [110/20] via 192.168.2.1, 00:02:21, GigabitEthernet 0/2

C    192.168.2.0/24 is directly connected, GigabitEthernet 0/2

C    192.168.2.2/32 is local host.